Skip to content

[pull] main from expo:main#625

Merged
pull[bot] merged 6 commits intocode:mainfrom
expo:main
Feb 25, 2026
Merged

[pull] main from expo:main#625
pull[bot] merged 6 commits intocode:mainfrom
expo:main

Conversation

@pull
Copy link

@pull pull bot commented Feb 25, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

kitten and others added 6 commits February 24, 2026 23:03
…late-tabs (#43311)

# Why

Jest isn't in the templates anymore. `expo-template-tabs` has a leftover
`react-test-renderer` dependency and test file. However, there's no
harness to run this test.

# How

- Drop leftover test file and `react-test-renderer` dependency

# Test Plan

- Ran yarn in template

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
…43310)

# Why

See:
https://exponent-internal.slack.com/archives/C1QP38NQ5/p1771591751319539

Main reasoning:
- `expo lint` prompts to auto-install these packages
- having the eslint setup doesn't mean people are set up to use it or
aware of it
- the eslint toolchain adds >200 packages to the install size, but we'd
like installs for new users (or rather the default template) to be
faster in the future
- we dropped jest (and SDK 56 / RN 0.85 will make it optional) which
removed packages, and will remove a further 60+, but this counteracted
that improvement

# How

- Drop `eslint` and `eslint-config-expo` dependencies from default
template

# Test Plan

- Ran `yarn` in template

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why


https://expo.dev/accounts/expo-ci/projects/unversioned-expo-go/workflows/019c9044-23ed-7a3d-b7a6-5c451edf460e#job-019c905e-cf5b-79fa-89de-ccd7b7c76087

Commit messages containing backticks (e.g. from PR checklist templates
like `` `changelog.md` ``) get executed as commands.

### Error log

```bash
line 38: changelog.md: command not found
npm WARN
exec The following package was not found and will be installed: expo@54.0.33
npm WARN EBADENGINE Unsupported engine {
```

<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->

# How

Treat commit message content as literal.

<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

No easy way to test until next failure, as this workflow only runs on
failure.

<!--
Please describe how you tested this change and how a reviewer could
reproduce your test, especially if this PR does not include automated
tests! If possible, please also provide terminal output and/or
screenshots demonstrating your test/reproduction.
-->

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why

`openAuthSessionAsync` currently uses `ASWebAuthenticationSession` with
`callbackURLScheme`, which only supports custom URL scheme callbacks.
Starting with iOS 17.4/macOS 14.4, Apple introduced a new callback API
(`.https(host:path:)`) that supports HTTPS universal link callbacks,
enabling more secure auth flows without relying on custom URL schemes.

# How

- On iOS 17.4+/macOS 14.4+, when the redirect URL has an `https` scheme
with a non-empty host, `WebAuthSession` now uses the new
`ASWebAuthenticationSession(url:callback:completionHandler:)`
initializer with `.https(host:path:)` callback matching. On older OS
versions or when using custom scheme redirect URLs, keep using the
existing `callbackURLScheme` API.
- Updated the NCL `OpenAuthSessionAsyncDemo` to use real GitHub OAuth
instead of `fake-auth.netlify.com`, which was no longer working.
- Configured `bare-expo` with associated domains (`applinks` +
`webcredentials` for `bare-expo.expo.app`) to enable HTTPS callback
testing.

# Test Plan

- Open the WebBrowser screen in NCL/bare-expo
- In the `openAuthSessionAsync` section, select **Custom Scheme**
redirect URL → tap **GitHub** → verify the GitHub OAuth page opens and
the auth flow completes with a `success` result
- Switch to **HTTPS (Universal Link)** redirect URL → tap **GitHub** →
verify the auth flow works using the HTTPS callback path (requires
associated domains to be properly configured for `bare-expo.expo.app`)

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---------

Co-authored-by: Alan Hughes <30924086+alanjhughes@users.noreply.github.com>
expo-widgets@55.0.0
expo-web-browser@55.0.9
expo-updates@55.0.11
expo-server@55.0.5
expo-processing@55.0.6
expo-router@55.0.0
expo-notifications@55.0.10
expo-navigation-bar@55.0.8
expo-modules-core@55.0.11
expo-modules-autolinking@55.0.8
expo-module-template-local@0.7.7
expo-module-template@55.0.7
expo-image@55.0.5
expo-glass-effect@55.0.7
expo-file-system@55.0.9
expo-doctor@1.18.7
expo-contacts@55.0.8
expo-brownfield@55.0.10
expo@55.0.0
@expo/require-utils@55.0.2
@expo/prebuild-config@55.0.7
@expo/metro-config@55.0.8
@expo/fingerprint@0.16.5
@expo/cli@55.0.11
expo-template-tabs@55.1.7
expo-template-default@55.1.7
expo-application@55.0.8
jest-expo@55.0.9
@expo/config@55.0.8
expo-constants@55.0.7
expo-crypto@55.0.8
expo-asset@55.0.7
expo-splash-screen@55.0.9
expo-status-bar@55.0.4
expo-device@55.0.9
expo-system-ui@55.0.9
expo-manifests@55.0.9
expo-updates-interface@55.1.3
expo-dev-launcher@55.0.9
expo-dev-menu@55.0.8
@expo/ui@55.0.0-beta.0
expo-sqlite@55.0.9
@expo/config-plugins@55.0.6
@expo/config-types@55.0.5
expo-task-manager@55.0.9
expo-build-properties@55.0.9
expo-gl@55.0.9
expo-auth-session@55.0.6
expo-dev-client@55.0.8
expo-template-blank-typescript@55.1.7
expo-template-blank@55.1.7
expo-template-bare-minimum@55.0.12
patch-project@55.1.6
uri-scheme@2.0.16
install-expo-modules@0.14.9
expo-sharing@55.0.10
expo-background-task@55.0.8
expo-background-fetch@55.0.8
expo-video-thumbnails@55.0.9
expo-video@55.0.9
expo-insights@55.0.10
expo-tracking-transparency@55.0.8
expo-store-review@55.0.8
expo-speech@55.0.8
expo-sms@55.0.8
expo-sensors@55.0.8
expo-secure-store@55.0.8
expo-screen-orientation@55.0.8
expo-screen-capture@55.0.8
expo-print@55.0.8
expo-network-addons@55.0.8
expo-network@55.0.8
expo-mesh-gradient@55.0.8
expo-media-library@55.0.9
expo-maps@55.0.9
expo-mail-composer@55.0.8
expo-location@55.1.2
expo-localization@55.0.8
expo-local-authentication@55.0.8
expo-live-photo@55.0.8
expo-linear-gradient@55.0.8
expo-intent-launcher@55.0.8
expo-image-picker@55.0.9
expo-image-manipulator@55.0.9
expo-haptics@55.0.8
expo-document-picker@55.0.8
expo-clipboard@55.0.8
expo-cellular@55.0.8
expo-camera@55.0.8
expo-calendar@55.0.8
expo-brightness@55.0.8
expo-blur@55.0.8
expo-blob@55.0.8
expo-battery@55.0.8
expo-audio@55.0.8
expo-apple-authentication@55.0.8
@expo/app-integrity@55.0.8
expo-age-range@0.2.10
uri-scheme@2.0.16
patch-project@55.1.6
jest-expo@55.0.9
install-expo-modules@0.14.9
expo-widgets@55.0.0
expo-web-browser@55.0.9
expo-video-thumbnails@55.0.9
expo-video@55.0.9
expo-updates-interface@55.1.3
expo-updates@55.0.11
expo-tracking-transparency@55.0.8
expo-system-ui@55.0.9
expo-task-manager@55.0.9
expo-store-review@55.0.8
expo-status-bar@55.0.4
expo-sqlite@55.0.9
expo-splash-screen@55.0.9
expo-speech@55.0.8
expo-sms@55.0.8
expo-sharing@55.0.10
expo-server@55.0.5
expo-sensors@55.0.8
expo-secure-store@55.0.8
expo-screen-orientation@55.0.8
expo-screen-capture@55.0.8
expo-processing@55.0.6
expo-router@55.0.0
expo-print@55.0.8
expo-notifications@55.0.10
expo-network-addons@55.0.8
expo-network@55.0.8
expo-navigation-bar@55.0.8
expo-modules-core@55.0.11
expo-modules-autolinking@55.0.8
expo-module-template-local@0.7.7
expo-module-template@55.0.7
expo-mesh-gradient@55.0.8
expo-media-library@55.0.9
expo-maps@55.0.9
expo-manifests@55.0.9
expo-mail-composer@55.0.8
expo-location@55.1.2
expo-localization@55.0.8
expo-local-authentication@55.0.8
expo-live-photo@55.0.8
expo-linear-gradient@55.0.8
expo-intent-launcher@55.0.8
expo-insights@55.0.10
expo-image-picker@55.0.9
expo-image-manipulator@55.0.9
expo-image@55.0.5
expo-haptics@55.0.8
expo-glass-effect@55.0.7
expo-gl@55.0.9
expo-file-system@55.0.9
expo-document-picker@55.0.8
expo-doctor@1.18.7
expo-device@55.0.9
expo-dev-menu@55.0.8
expo-dev-launcher@55.0.9
expo-dev-client@55.0.8
expo-crypto@55.0.8
expo-contacts@55.0.8
expo-constants@55.0.7
expo-clipboard@55.0.8
expo-cellular@55.0.8
expo-camera@55.0.8
expo-calendar@55.0.8
expo-build-properties@55.0.9
expo-brownfield@55.0.10
expo-brightness@55.0.8
expo-blur@55.0.8
expo-blob@55.0.8
expo-battery@55.0.8
expo-background-task@55.0.8
expo-background-fetch@55.0.8
expo-auth-session@55.0.6
expo-audio@55.0.8
expo-asset@55.0.7
expo-application@55.0.8
expo-apple-authentication@55.0.8
@expo/prebuild-config@55.0.7
@expo/require-utils@55.0.2
@expo/metro-config@55.0.8
@expo/fingerprint@0.16.5
@expo/config-types@55.0.5
@expo/config-plugins@55.0.6
@expo/config@55.0.8
@expo/cli@55.0.11
expo-template-tabs@55.1.7
expo-template-default@55.1.7
expo-template-blank-typescript@55.1.7
expo-template-blank@55.1.7
expo-template-bare-minimum@55.0.12
@expo/ui@55.0.0
@expo/app-integrity@55.0.8
expo-age-range@0.2.10
expo@55.0.0
create-expo@3.6.6
babel-preset-expo@55.0.7
@expo/router-server@55.0.8
@expo/local-build-cache-provider@55.0.6
expo-linking@55.0.7
expo-standard-web-crypto@55.0.5
@pull pull bot locked and limited conversation to collaborators Feb 25, 2026
@pull pull bot added the ⤵️ pull label Feb 25, 2026
@pull pull bot merged commit b183e5c into code:main Feb 25, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants